/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pl.tewi.annotations.processors;

import pl.tewi.contexts.ApplicationServerContext;
import pl.tewi.exceptions.AnnotationProcessingException;
import pl.tewi.exceptions.GeneralFrameworkException;

/**
 * Interfejs komponentu przetwarzającego adnotacje.
 * @author Marcin Kwapisz
 */
public interface AnnotationProcessor {

    /**
     * Metoda przetwarza wszystkie adnotacjie znajdujące się na klasie Junit4
     * TestSuite przekazanej jako parametr.
     * @param klass klasa opisana adnotacją typu {@link RunWith}({@link JeeSuite})
     * @param context 
     * @return uzupełniony kontekst aplikacji
     * @throws AnnotationProcessingException 
     * @throws GeneralFrameworkException  
     */
    ApplicationServerContext processAnnotations(Class<?> klass, ApplicationServerContext context) throws AnnotationProcessingException, GeneralFrameworkException;
}
